home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 November: Tool Chest / Dev.CD Nov 00 TC Disk 1.toast / Sample Code / Games / DroneZone / DZMenu.c < prev    next >
Encoding:
C/C++ Source or Header  |  2000-09-28  |  3.3 KB  |  172 lines  |  [TEXT/MPS ]

  1. /*
  2.  *    File:        DZMenu.c
  3.  *
  4.  *    Copyright © 1996 Apple Computer, Inc.
  5.  */
  6.  
  7. #include <Dialogs.h>
  8. #include <Menus.h>
  9.  
  10. #include "DZDisplay.h"
  11. #include "DZInput.h"
  12. #include "DZMain.h"
  13. #include "DZMenu.h"
  14. #include "DZGame.h"
  15. #include "DZResource.h"
  16. #include "DZSound.h"
  17.  
  18.  
  19. static void SelectAppleMenu(
  20.     short            inItem);
  21.  
  22. static void SelectFileMenu(
  23.     short            inItem);
  24.  
  25.  
  26. /* =============================================================================
  27.  *        Menu_Init (external)
  28.  *
  29.  *    Initializes our menus.
  30.  * ========================================================================== */
  31. void Menu_Init(
  32.     void)
  33. {
  34.     SetMenuBar(GetNewMBar(kMBarID_Main));
  35.     AppendResMenu(GetMenuHandle(kMenuID_Apple), 'DRVR');
  36.     DrawMenuBar();
  37. }
  38.  
  39.  
  40. /* =============================================================================
  41.  *        Menu_Exit (external)
  42.  *
  43.  *    Cleans up.
  44.  * ========================================================================== */
  45. void Menu_Exit(
  46.     void)
  47. {
  48. }
  49.  
  50.  
  51. /* =============================================================================
  52.  *        Menu_Select (external)
  53.  *
  54.  *    Takes action on the given menu item.
  55.  * ========================================================================== */
  56. void Menu_Select(
  57.     short            inMenuID,
  58.     short            inItem)
  59. {
  60.     switch (inMenuID)
  61.     {
  62.         case kMenuID_Apple:
  63.             SelectAppleMenu(inItem);
  64.         break;
  65.         
  66.         case kMenuID_File:
  67.             SelectFileMenu(inItem);
  68.         break;
  69.     }
  70.  
  71.     HiliteMenu(0);
  72. }
  73.  
  74.  
  75. /* =============================================================================
  76.  *        SelectAppleMenu (internal)
  77.  *
  78.  *    Takes action on the given Apple menu item.
  79.  * ========================================================================== */
  80. void SelectAppleMenu(
  81.     short            inItem)
  82. {
  83.     switch (inItem)
  84.     {
  85.         case kAppleItem_About:
  86.             Display_Activate(false);
  87.             Alert(kAlrtID_About, NULL);
  88.             Display_Activate(true);
  89.         break;
  90.     }
  91. }
  92.  
  93.  
  94. /* =============================================================================
  95.  *        SelectFileMenu (internal)
  96.  *
  97.  *    Takes action on the given File menu item.
  98.  * ========================================================================== */
  99. void SelectFileMenu(
  100.     short            inItem)
  101. {
  102.     switch (inItem)
  103.     {
  104.         case kFileItem_StartGame:
  105.             switch (Game_GetState())
  106.             {
  107.                 case kGameState_Playing:
  108.                     // do nothing -- should be disabled
  109.                 break;
  110.                 
  111.                 case kGameState_Paused:
  112.                     Game_SetState(kGameState_Stopped);
  113.                     Game_SetState(kGameState_Playing);
  114.                 break;
  115.                 
  116.                 case kGameState_Stopped:
  117.                     Game_SetState(kGameState_Playing);
  118.                 break;
  119.             }
  120.         break;
  121.         
  122.         case kFileItem_EndGame:
  123.             switch (Game_GetState())
  124.             {
  125.                 case kGameState_Playing:
  126.                 case kGameState_Paused:
  127.                     Game_SetState(kGameState_Stopped);
  128.                 break;
  129.                 
  130.                 case kGameState_Stopped:
  131.                     // do nothing -- should be disabled
  132.                 break;
  133.             }
  134.         break;
  135.         
  136.         case kFileItem_PauseGame:
  137.             switch (Game_GetState())
  138.             {
  139.                 case kGameState_Playing:
  140.                     Game_SetState(kGameState_Paused);
  141.                 break;
  142.                 
  143.                 case kGameState_Paused:
  144.                     Game_SetState(kGameState_Playing);
  145.                 break;
  146.                 
  147.                 case kGameState_Stopped:
  148.                     // do nothing -- should be disabled
  149.                 break;
  150.             }
  151.         break;
  152.         
  153.         case kFileItem_ConfigInput:
  154.             Display_Activate(false);
  155.             Input_Configure();
  156.             Display_Activate(true);
  157.         break;
  158.         
  159.         case kFileItem_Config3DSound:
  160.             Display_Activate(false);
  161.             Sound_Configure();
  162.             Display_Activate(true);
  163.         break;
  164.         
  165.         case kFileItem_Quit:
  166.             Main_LastRoundup();
  167.         break;
  168.     }
  169. }
  170.  
  171.  
  172.